Node.js சோதனை கட்டமைப்புகளுக்கு அறிமுகம்
சோதனை என்பது உருவாக்க செயல்முறையின் முக்கியமான பகுதியாகும், இது உங்கள் Node.js பயன்பாடுகள் நம்பகமானவை மற்றும் பராமரிக்கக்கூடியவை என்பதை உறுதிப்படுத்த உதவுகிறது.
இந்தப் பக்கம் Node.js சூழலில் மிகவும் பிரபலமான சோதனை கட்டமைப்புகள் மற்றும் கருவிகளை அறிமுகப்படுத்துகிறது, உங்கள் திட்டத்திற்கு சரியான ஒன்றைத் தேர்ந்தெடுக்க உதவுகிறது.
குறிப்பு:
ஒரு நல்ல சோதனை கட்டமைப்பு வேகமாக இருக்க வேண்டும், உதவிகரமான பிழை செய்திகளை வழங்க வேண்டும், வெவ்வேறு வகையான சோதனைகளை (அலகு, ஒருங்கிணைப்பு, e2e) ஆதரிக்க வேண்டும் மற்றும் உங்கள் உருவாக்கப் பணிப்பாய்வுடன் நன்றாக ஒருங்கிணைக்க வேண்டும்.
பிரபலமான சோதனை கட்டமைப்புகள்
Node.js சூழலில் மிகவும் பிரபலமான மற்றும் பரவலாகப் பயன்படுத்தப்படும் சோதனை கட்டமைப்புகள் இங்கே:
Jest
Jest என்பது எளிமையில் கவனம் செலுத்தும் மகிழ்ச்சியான JavaScript சோதனை கட்டமைப்பாகும், இது Facebook மூலம் உருவாக்கப்பட்டது.
இது பெரும்பாலான JavaScript திட்டங்களுக்கு பெட்டியிலிருந்து வேலை செய்யும் பூஜ்ஜிய-கட்டமைப்பு சோதனை தளமாகும்.
சிறந்தது: குறைந்தபட்ச அமைப்புடன் முழு அம்ச சோதனை, முன்பக்க மற்றும் பின்பக்க சோதனைக்கு சிறந்தது
நிறுவல்
npm install --save-dev jest
எடுத்துக்காட்டு சோதனை
utils/math.js
function sum(a, b) {
if (typeof a !== 'number' || typeof b !== 'number') {
throw new Error('Both arguments must be numbers');
}
return a + b;
}
function divide(a, b) {
if (b === 0) {
throw new Error('Division by zero');
}
return a / b;
}
module.exports = { sum, divide };
__tests__/math.test.js
const { sum, divide } = require('../utils/math');
describe('Math utilities', () => {
describe('sum()', () => {
it('should add two numbers correctly', () => {
expect(sum(1, 2)).toBe(3);
expect(sum(-1, 1)).toBe(0);
});
it('should throw error for non-number inputs', () => {
expect(() => sum('1', 2)).toThrow('Both arguments must be numbers');
});
});
describe('divide()', () => {
it('should divide two numbers correctly', () => {
expect(divide(10, 2)).toBe(5);
});
it('should throw error when dividing by zero', () => {
expect(() => divide(10, 0)).toThrow('Division by zero');
});
});
});
முக்கிய அம்சங்கள்
சோதனைகளை இயக்குதல்
# Run all tests
npx jest
# Run tests in watch mode
npx jest --watch
# Run tests matching a specific pattern
npx jest -t "math utilities"
# Generate coverage report
npx jest --coverage
Mocha
Mocha என்பது Node.js இல் இயங்கும் மற்றும் உலாவியில் உள்ள ஒரு அம்சம் நிறைந்த JavaScript சோதனை கட்டமைப்பாகும், இது அசிங்க்ரோனஸ் சோதனையை எளிமையானதாகவும் வேடிக்கையானதாகவும் ஆக்குகிறது.
சிறந்தது: பிளக்-இன்கள் மற்றும் ஒருங்கிணைப்புகளின் பரந்த வரம்புடன் நெகிழ்வான சோதனை
நிறுவல்
npm install --save-dev mocha chai
எடுத்துக்காட்டு சோதனை
test/math.test.js
const { expect } = require('chai');
const { sum, divide } = require('../utils/math');
describe('Math Utilities', () => {
describe('sum()', () => {
it('should return the sum of two numbers', () => {
expect(sum(1, 2)).to.equal(3);
expect(sum(-1, 1)).to.equal(0);
});
it('should throw error for non-number inputs', () => {
expect(() => sum('1', 2)).to.throw('Both arguments must be numbers');
});
});
describe('divide()', () => {
it('should divide two numbers correctly', () => {
expect(divide(10, 2)).to.equal(5);
});
it('should throw error when dividing by zero', () => {
expect(() => divide(10, 0)).to.throw('Division by zero');
});
});
});
முக்கிய அம்சங்கள்
சோதனைகளை இயக்குதல்
# Add to package.json
"scripts": {
"test": "mocha"
}
# Run tests
npm test
# Run with specific reporter
npx mocha --reporter nyan
# Run with coverage
npx nyc mocha
Vitest
Vitest என்பது Vite மூலம் இயக்கப்படும் ஒரு மிக வேகமான அலகு சோதனை கட்டமைப்பாகும், இது Jest உடன் இணக்கமாக இருக்க வடிவமைக்கப்பட்டுள்ளது ஆனால் மிகவும் வேகமானது.
சிறந்தது: ஏற்கனவே Vite ஐப் பயன்படுத்தும் திட்டங்கள், அல்லது வேகமான சோதனை செயலாக்கம் தேவைப்படும் திட்டங்கள்
நிறுவல்
npm install -D vitest
எடுத்துக்காட்டு சோதனை
math.test.js
import { describe, it, expect } from 'vitest';
import { sum, divide } from './math.js';
describe('Math Utilities', () => {
it('should add numbers', () => {
expect(sum(1, 2)).toBe(3);
});
it('should throw error for invalid inputs', () => {
expect(() => sum('1', 2)).toThrow('Both arguments must be numbers');
});
});
முக்கிய அம்சங்கள்
ஒப்பீட்டு அட்டவணை
| கட்டமைப்பு | பூஜ்ஜிய கட்டமைப்பு | வேகம் | உள்ளமைக்கப்பட்ட மோக்குகள் | குறியீட்டு கவரேஜ் | சிறந்தது |
|---|---|---|---|---|---|
| Jest | ✅ ஆம் | வேகமான | ✅ ஆம் | ✅ உள்ளமைக்கப்பட்ட | குறைந்தபட்ச அமைப்புடன் முழு அம்ச சோதனை |
| Mocha | ❌ இல்லை | வேகமான | ❌ இல்லை (Sinon தேவை) | ❌ nyc தேவை | நிறைய பிளக்-இன்களுடன் நெகிழ்வான சோதனை |
| Vitest | ✅ ஆம் | மிக வேகமான | ✅ ஆம் | ✅ உள்ளமைக்கப்பட்ட | Vite திட்டங்கள், ESM, TypeScript |
| Node.js Assert | ✅ ஆம் | மிக வேகமான | ❌ இல்லை | ❌ கவரேஜ் கருவி தேவை | எளிய திட்டங்கள், சார்புகள் இல்லை |